package com.itany.corejava.code14_lambda;

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

/**
 * @author Miss Chen
 * @version 1.0
 * @date 2024年08月09日10:27
 */
public class Test04_断言型接口 {

    public static void main(String[] args) {
        List<String> list= Arrays.asList("南京","北京","上海","杭州","苏州","南通");
        // testPredicate(new Predicate<String>() {
        //     @Override
        //     public boolean test(String s) {
        //         return s.contains("州");
        //     }
        // },list);
        //

        testPredicate(s->s.contains("州"),list);


    }
    // 断言型接口Predicate<T>  有参数T  有返回值boolean  boolean test(T t)
    // 其方法返回值是一个布尔类型，一般用于判断给定参数是否符合指定的规则
    // 具体规则由方法调用者实现
    public static void testPredicate(Predicate<String> predicate, List<String> list){
        for(String s:list){
            if(predicate.test(s)){
                //当返回值为true，则打印对应的内容
                System.out.println(s);
            }
        }
    }
}
